/**
 * @format
 */

import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
import {NativeModules} from 'react-native';
import {PushyProvider, Pushy} from 'react-native-update';
import theme from './src/utils/theme';

// 唯一必填参数是 appKey，其他选项请参阅 api 文档
const pushyClient = new Pushy({
  appKey: theme.app.appKey,
  // 注意，默认情况下，在开发环境中不会检查更新
  // 如需在开发环境中调试更新，请设置 debug 为 true
  // 但即便打开此选项，也仅能检查、下载热更，并不能实际应用热更。实际应用热更必须在 release 包中进行。
  // debug: true
});

if (__DEV__) {
  NativeModules.DevSettings.setIsDebuggingRemotely(true);
}

// 定义一个新的根组件，将 App 组件包裹在 PushyProvider 中
const Root = () => {
  // 注意，在使用 PushyProvider 的当前组件中，无法直接调用 usePushy
  // 只有当前组件的子组件才能调用 usePushy
  return (
    <PushyProvider client={pushyClient}>
      {/* ↓ 整个应用的根组件放到 PushyProvider 中 */}
      <App />
    </PushyProvider>
  );
};

// 注册修改后的根组件
AppRegistry.registerComponent(appName, () => Root);
